A secure communication system relies on an encryption algorithm and an encryption key variable in order to encrypt a stream of data/voice being passed between two or more communication units. For the units to communicate properly, all units involved in the communication must share both the same encryption algorithm and the same encryption key variable. If either the encryption algorithm or the encryption key variable is different between the transmitting unit and a receiving unit, the communications will not be successful. By applying encryption techniques in this manner, it is possible to make it difficult for an adversary to monitor the communications being transmitted.
An encryption algorithm is a mathematical operation that pseudo-randomizes the information stream being transmitted. There are a variety of encryption algorithms available, and the choice of an algorithm for a particular application is generally based on the level of security desired. The encryption algorithm typically does not change very often in a system, and therefore an adversary may be able to determine what the algorithm is over a period of time. An effective encryption algorithm must also be capable of supporting a large number of encryption key variables to eliminate reliance solely on the strength and secrecy of the encryption algorithm. This prevents easy compromise of the system.
The encryption key variable is a number compatible with the encryption algorithm, that, when combined with the encryption algorithm, is used to encrypt a stream of voice or data information. Generally, the more encryption key variables an encryption algorithm can support, the more difficult it is to compromise the communication system. The system user typically chooses the encryption key variable. Over time, the encryption key variable may become known to an adversary in a number of ways; therefore, frequent changing of the encryption key variable reduces the risk of communication system compromise.
There are generally two categories of encryption key variables in a secure communication system. First, a traffic encryption key, or TEK, is used for the encryption of normal communication traffic, such as voice or data information signals. The second type is called a key encryption key (KEK), and is used to encrypt encryption key variables for transit, transmission or storage.
In most secure communication systems, encryption key variables are loaded into communication units by hand and individually, using a key variable loader. In large systems it can take a very long time to change the encryption key variables in all of the communication units, and, during these rekeying transition times there is an inability for all communication units to communicate with each other.
In more advanced secure communication systems, encryption key variables are stored and distributed electronically to communication units using a key management controller or KMC. This method provides for rapid distribution of encryption key variables to the communications units, reducing significantly the time it takes to load new encryption key variables into all communication units in a system. Nonetheless, communication among some of the communication units is still prevented until distribution of new keying material is completed. Furthermore, units that are powered down or out of range of KMC transmissions still would not receive new keys in a timely fashion.
Accordingly, a need arises for a method that ensures that communication units are operating with proper encryption key variables so that disruption of encrypted communication is minimized.